1. Technical Field
The present invention relates to data storage and retrieval generally and more particularly to a method and system for providing a shared data resource coordinator within a storage virtualizing data processing system.
2. Description of the Related Art
Information drives business. Companies today rely to an unprecedented extent on online, frequently accessed, constantly changing data to run their businesses. One system for the storage, management, and retrieval of such data is the storage area network (SAN). A storage area network (SAN) is a high-speed special-purpose network (or subnetwork) that interconnects one or more physical data storage devices with one or more associated server and/or client data processing systems. Typically, a storage area network is part of the overall network of computing resources for an enterprise and may include a number of physical storage devices, hubs, switches, bridges, server data processing systems, backup devices, and interface cards or host bus adapters communicatively interconnected using various communication protocols (e.g., SCSI, Fibre Channel, or the like). SANs frequently support disk mirroring, backup and restore, archival and retrieval of archived data, data migration from one storage device to another, and the sharing of data among different servers in a network. SANs can incorporate subnetworks with network-attached storage (NAS) systems.
One technique increasingly implemented with storage area networks is storage virtualization. Using storage virtualization, physical storage objects may be flexibly used to present one or more logical storage objects (e.g., volumes) on a storage area network. For example, a single physical storage device may be virtually partitioned into multiple logical storage objects or combined with other physical storage devices to present a single logical storage object. Logical storage objects (e.g., volumes) may be presented as, and behave like, physical block storage devices (e.g., physical disk storage devices), but may have arbitrarily complex (e.g., possibly redundant) internal geometries. The memory space of a logical storage object is ultimately mapped to a memory space on one or more physical storage devices, or to the memory space of one or more other logical storage objects. Storage virtualization enables tasks such as backup, archiving, and recovery to be performed more easily, and in less time, by disguising the actual complexity of the SAN and storage devices of various types. Consequently, a wide variety of physical storage devices may be used to store data within an enterprise without regard to server or client platform or physical storage device configuration. Storage virtualization may be implemented at different levels (e.g., logical volume configuration client or server data processing systems within or outside of the SAN, SAN nodes such as switches, hubs, bridges, or the like, and/or physical storage devices or appliances) within an enterprise at a hardware, firmware, or software level. Storage virtualization may also be provided alternatively “in-band” (symmetrically) or “out-of-band” (asymmetrically).
In “in-band” storage virtualization, the element which “virtualizes” storage by mapping logical volume memory addresses to physical device memory addresses is located at least logically or functionally within the input/output (I/O) or “data” path such that it translates or maps each application-generated logical address into a physical address. An “in-band” storage virtualization element is therefore functionally interposed between the physical storage device or devices which make up a logical storage object and the data processing system(s) which are associated with the application or applications mounting the logical storage object. In “out-of-band” virtualization by contrast, the element or elements responsible for virtualizing storage resides outside of the data or “I/O” path, providing metadata (e.g., the mapping between logical and physical device addresses) to application data processing system(s) which in turn map I/O operations.
In conventional data processing system employing storage virtualization, the element or elements responsible for virtualization also perform a number of other storage related functions. For example, where a logical volume is to be shared among a number of logical volume configuration clients (i.e., configured to be accessed by two or more logical volume configuration clients), access to the shared logical volume itself, or metadata associated with the shared logical volume is to be coordinated among all logical volume configuration clients by the element or elements providing the core storage virtualization functionality, thus resulting in additional latency and reduced reliability.